#!/bin/bash

# 获取所有已缓存的文件
FILES=$(git diff --cached --name-only)

# 遍历每个文件
for FILE in $FILES; do
    # 检查文件名是否为小写
    BASENAME=$(basename "$FILE")
    if [[ "$BASENAME" != "${BASENAME,,}" ]]; then
        echo "Error: 文件名 '$FILE' 必须是小写。"
        exit 1
    fi

    # 检查文件编码
    FILE_ENCODING=$(file -b --mime-encoding "$FILE")
    
    if [[ "$FILE_ENCODING" == "utf-8" ]]; then
        echo "Error: 文件 '$FILE' 是 UTF-8 编码。"
        exit 1
    fi

    # 检查是否带有 BOM
    if head -c 3 "$FILE" | grep -q $'\xef\xbb\xbf'; then
        echo "Error: 文件 '$FILE' 不能带有 BOM。"
        exit 1
    fi
done

# 如果所有检查都通过，允许提交
exit 0
